<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>配置对象属性,获取对象属性</title>
</head>
<body>
</body>
<script>
    var obj = {x:1}
    //一参数:要配置的对象 二参数:属性名  三参数:配置(JSON对象)
    //直接添加的属性所有默认值都是true，使用defineProperty添加的属性，默认是false
    //添加y属性，并进行相应的配置
    Object.defineProperty(obj,'y',{
        enumerable:true,//值为false 无法使用var   in  访问到，可枚举的，可列举的，默认是false
        configurable:true,//是否可配置，是否能删除，默认false
        value:2,//就是设置y的值为2
        writable:true//能否更改value值  默认false
    });
    console.log(obj);
    for(var i in obj)
        console.log(obj[i]);
    //直接添加就是不用defineProperty添加的属性
    //获取y属性的配置信息，返回一个对象
    console.log(Object.getOwnPropertyDescriptor(obj,'y'));//把对象的所有配置和属性输出，返回值是对象

    //定义多个属性
    Object.defineProperties(obj,{
        x:{
            //写配置
            value:3,enumerable:true
        },
        y:{
            //写配置
            value:4,writable:true,configurable:true
        },
        z:{
            //写配置
            get(){return this._z},
            set(val){this._z = val}
        }
    });
</script>
</html>